From: Camila Ayres Date: Wed, 26 Feb 2025 15:55:26 +0000 (+0100) Subject: Add option to disable virtual files syncing on Windows. X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~1^2~15^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=a3ae0441c327751b9f9aac6d950c05f2707c9597;p=nextcloud-desktop.git Add option to disable virtual files syncing on Windows. Signed-off-by: Camila Ayres --- diff --git a/NEXTCLOUD.cmake b/NEXTCLOUD.cmake index 9b0129263..e589a7799 100644 --- a/NEXTCLOUD.cmake +++ b/NEXTCLOUD.cmake @@ -52,6 +52,7 @@ option( BUILD_UPDATER "Build updater" ON ) option( WITH_PROVIDERS "Build with providers list" ON ) option( ENFORCE_VIRTUAL_FILES_SYNC_FOLDER "Enforce use of virtual files sync folder when available" OFF ) +option( DISABLE_VIRTUAL_FILES_SYNC_FOLDER "Disable use of virtual files sync folder even when available" OFF ) option(ENFORCE_SINGLE_ACCOUNT "Enforce use of a single account in desktop client" OFF) diff --git a/config.h.in b/config.h.in index bcf061028..0e3f0eae9 100644 --- a/config.h.in +++ b/config.h.in @@ -36,6 +36,7 @@ #define APPLICATION_DOTVIRTUALFILE_SUFFIX "." APPLICATION_VIRTUALFILE_SUFFIX #define APPLICATION_URI_HANDLER_SCHEME "@APPLICATION_URI_HANDLER_SCHEME@" #cmakedefine01 ENFORCE_VIRTUAL_FILES_SYNC_FOLDER +#cmakedefine01 DISABLE_VIRTUAL_FILES_SYNC_FOLDER #cmakedefine DO_NOT_USE_PROXY "@DO_NOT_USE_PROXY@" #cmakedefine ENFORCE_SINGLE_ACCOUNT "@ENFORCE_SINGLE_ACCOUNT@" #cmakedefine01 APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 5d352bdba..65b8b7bad 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -726,8 +726,8 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) } if (const auto mode = bestAvailableVfsMode(); - Theme::instance()->showVirtualFilesOption() - && !folder->virtualFilesEnabled() && Vfs::checkAvailability(folder->path(), mode)) { + !Theme::instance()->disableVirtualFilesSyncFolder() && + Theme::instance()->showVirtualFilesOption() && !folder->virtualFilesEnabled() && Vfs::checkAvailability(folder->path(), mode)) { if (mode == Vfs::WindowsCfApi || ConfigFile().showExperimentalOptions()) { ac = menu->addAction(tr("Enable virtual file support %1 …").arg(mode == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); // TODO: remove when UX decision is made diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index 92db88f1a..6be6516e4 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -991,7 +991,8 @@ bool FolderMan::pushNotificationsFilesReady(Account *account) bool FolderMan::isSwitchToVfsNeeded(const FolderDefinition &folderDefinition) const { auto result = false; - if (ENFORCE_VIRTUAL_FILES_SYNC_FOLDER && + if (!DISABLE_VIRTUAL_FILES_SYNC_FOLDER && + ENFORCE_VIRTUAL_FILES_SYNC_FOLDER && folderDefinition.virtualFilesMode != bestAvailableVfsMode() && folderDefinition.virtualFilesMode == Vfs::Off && OCC::Theme::instance()->showVirtualFilesOption()) { diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp index a3023bbc3..9f31cf4b7 100644 --- a/src/gui/folderwizard.cpp +++ b/src/gui/folderwizard.cpp @@ -572,7 +572,7 @@ FolderWizardSelectiveSync::FolderWizardSelectiveSync(const AccountPtr &account) _selectiveSync = new SelectiveSyncWidget(account, this); layout->addWidget(_selectiveSync); - if (Theme::instance()->showVirtualFilesOption() && bestAvailableVfsMode() != Vfs::Off) { + if (!Theme::instance()->disableVirtualFilesSyncFolder() && Theme::instance()->showVirtualFilesOption() && bestAvailableVfsMode() != Vfs::Off) { _virtualFilesCheckBox = new QCheckBox(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); connect(_virtualFilesCheckBox, &QCheckBox::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked); connect(_virtualFilesCheckBox, &QCheckBox::checkStateChanged, this, [this](int state) { diff --git a/src/gui/wizard/owncloudadvancedsetuppage.cpp b/src/gui/wizard/owncloudadvancedsetuppage.cpp index d4217620d..c3da20ec0 100644 --- a/src/gui/wizard/owncloudadvancedsetuppage.cpp +++ b/src/gui/wizard/owncloudadvancedsetuppage.cpp @@ -158,7 +158,7 @@ void OwncloudAdvancedSetupPage::initializePage() { WizardCommon::initErrorLabel(_ui.errorLabel); - if (!Theme::instance()->showVirtualFilesOption() + if (Theme::instance()->disableVirtualFilesSyncFolder() || !Theme::instance()->showVirtualFilesOption() #ifndef BUILD_FILE_PROVIDER_MODULE || bestAvailableVfsMode() == Vfs::Off #endif diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index 59f1d5ef7..9e90a0002 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -960,6 +960,11 @@ bool Theme::enforceVirtualFilesSyncFolder() const return ENFORCE_VIRTUAL_FILES_SYNC_FOLDER && vfsMode != OCC::Vfs::Off; } +bool Theme::disableVirtualFilesSyncFolder() const +{ + return DISABLE_VIRTUAL_FILES_SYNC_FOLDER; +} + QColor Theme::defaultColor() { return QColor{NEXTCLOUD_BACKGROUND_COLOR}; diff --git a/src/libsync/theme.h b/src/libsync/theme.h index 092fc112b..6c05ffde9 100644 --- a/src/libsync/theme.h +++ b/src/libsync/theme.h @@ -596,6 +596,7 @@ public: [[nodiscard]] bool showVirtualFilesOption() const; [[nodiscard]] bool enforceVirtualFilesSyncFolder() const; + [[nodiscard]] bool disableVirtualFilesSyncFolder() const; static QColor defaultColor();